package 代码记录.Bit48天集训;

import java.util.Scanner;

/**答案已订正
 * 1.二进制插入
 * 2.查找组成一个偶数最接近的两个素数
 * @author zx
 * @create 2022-05-07 10:37
 */
public class day_12 {
    /**
     n：1024 -> 100000000 00
     m：19   -> 10011
     我们想到可以让10011左移j位就可以正常做运算了。
     10000000000
     00001001100
     -------------------
     10001001100 ---->1100（十进制）
     * @return
     */
    public int binInsert(int n, int m, int j, int i) {
        // m左移j位
        m <<= j;
        return n | m;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        //最近的两个素数应该从最中间的位置开始向两边查找
        for(int i = number / 2;i > 0;i--){
            if(isPrime(i) && isPrime(number - i)){
                System.out.println(i);
                System.out.println(number - i);
                break;
            }
        }
    }
    private static boolean isPrime(int n){
        int i = 2;
        for(i = 2;i <= Math.sqrt(n);i++){
            //只要模一次是0,就不是素数
            if(n % i == 0){
                return false;
            }
        }
        return i > Math.sqrt(n);//是素数
    }
}
